﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SoftwareConsulting.BI11.Studio.Core.Project;
using SoftwareConsulting.BI11.Studio.UI.ProjectExplorer;
using SoftwareConsulting.BI11.Studio.Core.Project.SituationsHierarchy;
using SoftwareConsulting.BI11.Studio.UI.Properties;
using SoftwareConsulting.BI11.Studio.InternalServices;

namespace SoftwareConsulting.BI11.Studio.UI.Workflow
{
    /// <summary>
    /// Класс формы системы документооборота
    /// </summary>
    public partial class WorkflowForm : RestorableForm
    {
        private ProjectExplorerForm _projectExplorerLink; //для связи с формой обозревателя проекта

        public WorkflowForm(ProjectExplorerForm projectExplorerLink)
        {
            _projectExplorerLink = projectExplorerLink;
            InitializeComponent();
        }

        private ProjectDescriptor ProjectLink
        {
            get
            {
                return _projectExplorerLink.ProjectLink;
            }
        }

        /// <summary>
        /// Возвращает ссылку на форму обозревателя проекта
        /// </summary>
        public ProjectExplorerForm ProjectExplorerLink
        {
            get
            {
                return _projectExplorerLink;
            }
        }

        /// <summary>
        /// Выполняет необходимые действия перед закрытием окна системы документооборота
        /// </summary>
        private void BeforeClose()
        {            
            ProjectExplorerLink.WorkflowWindow = null;
        }

        /// <summary>
        /// Обновляет название окна
        /// </summary>
        public void UpdateCaptionName()
        {
            Text = string.Format(Resources.BI_FRAMECHILD_MASK, Resources.BI_WORKFLOW_CAPTION, _projectExplorerLink.ProjectLink.Name);
        }

        /// <summary>
        /// Читает записи
        /// </summary>
        private void ReadRecords()
        {
        }

        /// <summary>
        /// Инициализация формы
        /// </summary>
        private void Initialize()
        {
            UpdateCaptionName();            
            WindowState = FormWindowState.Maximized;
            ReadRecords();
        }

        /// <summary>
        /// Отображает диалог добавления новой записи
        /// </summary>
        private void ShowNewRecordWindow()
        {
            NewWorkflowRecordDialog nwrd = new NewWorkflowRecordDialog(ProjectLink.Workflow,null);
            if (nwrd.ShowDialog() == DialogResult.OK)
            {
                ReadRecords();
            }
        }

        private void WorkflowForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            BeforeClose();
        }

        private void перейтиКИерархииСитуацийToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProjectExplorerLink.Focus();
        }

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void WorkflowForm_Load(object sender, EventArgs e)
        {
            Initialize();
        }

        private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProjectExplorerLink.ShowAboutDialog();
        }

        private void AddRecord_Click(object sender, EventArgs e)
        {
            ShowNewRecordWindow();
        }

        private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ShowNewRecordWindow();
        }

        private void добавитьЗаписьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ShowNewRecordWindow();
        }

        private void DiscussionBox_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
